<?php
namespace app\index\controller;

use app\common\controller\IndexBase;
use app\common\library\YuUtil;
use think\Exception;
use think\Queue;


class Index extends IndexBase
{

    /**
     * @var 登录的用户id
     */
    protected $uid;
    /**
     * @var 登录的用户信息对象
     */
    protected $jsonObject;

    /**
     * @var 登录的token
     */
    protected $token;

    /**
     * @var array 前置操作，这里是检查登录
     */
    protected $beforeActionList = [
        'checkAuth'=>['except'=>'user,login,register,forget,about']
    ];

    /**
     * @title 检查登录
     * @description 检查登录
     * @author Admin ldy
     * @param name:token  type:string require:1 default:1 desc:
     * @time 2018/9/19  9:36
     */
    protected function checkAuth(){
        /// 如需登录，调用此方法鉴权
        /// 注解1：如果已经登录，则会获取到uid;否则会直接打印错误信息，不执行下面的代码
        /// 注解2：该方法走的是缓存，不通过数据库检查
        /// 注解3：如果没有token信息，需要调登录接口，重新获取token，并保存，token有效期暂定为30天
        /// 注解4：该类所有方法需要登录鉴权，故预先加载

        $cookietoken = $this->request->param('token');
        $cookieuser = $this->request->param('userstring');

        if (YuUtil::is_empty($cookietoken)||YuUtil::is_empty($cookieuser)){
            $cookietoken =cookie('scj_token');
            $cookieuser =cookie('scj_user');
//            echo '有cookie? '.$cookieuser;
//            echo '<br>有cookie? '.$cookietoken;
//            exit;
        }
//        $cookietoken =cookie('scj_token');
//        $cookieuser =cookie('scj_user');

        try {
            //验证客服端是否有token
            if (YuUtil::is_empty($cookietoken)|| YuUtil::is_empty($cookieuser)) {
                $this->redirect('login');
            }
            //验证服务器中的token与客户端是否一致！！
            $this->checkUidByToken($cookietoken);
            //从客户端中获取用户信息？
            $jsonObject = json_decode($cookieuser);
            $this->uid = $jsonObject->id;
            $this->jsonObject = $jsonObject;
            $this->token = $cookietoken;
        }catch (Exception $e){
            echo $e->getTraceAsString();
        }
        //用户如果操作了个人的数据，就代表今天签到了
//        Sign::isSignToday($this->uid);
    }

    public function index()
    {
        $this->redirect('login');
        // 指定模板输出
        return $this->view->fetch();
    }

    public function register(){
        // 指定模板输出
        return $this->view->fetch('Index/register');
    }

    public function user(){
        $this->view->assign('user',YuUtil::json_to_array($this->jsonObject));

        // 指定模板输出
        return $this->view->fetch('Index/user');
    }

    public function te(){
        // 指定模板输出
        return $this->view->fetch();
    }

    public function te2(){
        // 指定模板输出
        return $this->view->fetch();
    }

    public function te3(){
        // 指定模板输出
        return $this->view->fetch();
    }

    public function test(){
        // 指定模板输出
        return $this->view->fetch();
    }

    public function login()
    {
        // 指定模板输出
//        return $this->view->fetch('../application/index/view/Index/login.html');
        return $this->autoChacheView('Index/login');
    }

    public function type(){
        // 指定模板输出
        return $this->view->fetch();
    }

    public function forget(){
        // 指定模板输出
        return $this->view->fetch('Index/forget');
    }

    public function about(){
        // 指定模板输出
        return $this->autoChacheView('Index/about');
//        return $this->view->fetch('Index/about');
    }

    public function msg(){
        // 指定模板输出
        return $this->view->fetch('Index/msg');
    }

    public function pas(){
        return $this->view->fetch('Index/pas');
    }

    /**
     * @title
     * @description
     * @author Admin ldy
     * @url
     * @param name:email  type:string require:1 default:1 desc:
     * @time 2019/1/4  17:19
     * @return mixed
     */
    public function simple(){
//        $uid = $this->request->param('id');
//        if (!empty($uid)){
////            $uid = 14;
//            $where = array('a.user_id'=>$uid,'a.status_is_detele'=>0);
//        }else{
//            $where=array();
//        }
//        try {
//            $array = \think\Db::table('scj_url_person')
//                ->field('w.url,a.id,a.desc,a.nickname,a.keyword,a.addtime')
//                ->alias('a')
//                ->join('scj_url_public w','a.base_url_id = w.id')
//                ->where($where)
//                ->select();
////            if ($array){
//////                var_dump(json_encode($array));
////                foreach ($array as $item) {
//////                    $str = '- '.$item['id'] .' '. $item['nickname'].'<br/> ';
//////                    echo '- '.$item['id'] .' '. $item['nickname'].'<br/> ';
////                    echo '- '.$item['id'].' <a href="'.$item['url'].'" target="_blank">'.$item['nickname'] . '</a><br />';
////                }
////            }
//            $this->view->assign('list',$array);
//        }catch (Exception $e){
//            $this->err(ErrorType::DATA_EXCEPTION);
//        }
        return $this->view->fetch('Index/simpleShow');
    }

}
